class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        tmp = 0
        for i in range(len(digits)):
            tmp += digits[i]*10**(len(digits)-i-1)
        tmp += 1
        res = []
        for i in range(len(str(tmp))):
            res.append(int(str(tmp)[i]))
        return res
'''
不是正常的解法，主要的考点在于进位
9的时候pop掉然后新的append 0，然后  [1] + 
[-1] += 1
'''
class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        res = []
        while digits and digits[-1] == 9:
            digits.pop()
            res.append(0)
        # 如果是全pop掉了，首位+1
        if not digits:
            return [1] + res
        # 没有的话原来的尾数+1，拼接剩下的0
        else:
            digits[-1] += 1
            return digits + res
class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        res = []
        while digits and digits[-1]==9:
            digits[-1].pop()
            res.append(0)
        if not digits:
            return [1]+ res
        else:
            digits[-1] += 1
            return digits + res